// 路由文件

//引入vue
import Vue from 'vue';

//引入vue-router
import VueRouter from 'vue-router';

//引用 login 页面
import login from '../pages/login';

//引用 home 页面
import Home from '../pages/Home';

//引用 welcome 页面
import Welcome from '../pages/Welcome';
//引用 User 页面
import Users from '../pages/user/Users';
//引用 Rights 页面
import Rights from '../pages/power/Rights';
//引用 Roles 页面
import Roles from '../pages/power/Roles';
//引用 商品分类页面
import Categories from '../pages/goods/Categories';

//引用 分类参数页面
import Params from '../pages/goods/Params';

//引用 商品列表页面
import Goods from '../pages/goods/Goods';

//引用 商品添加页面
import Addpage from '../pages/goods/Addpage';

//引用 商品菜单页面
import Order from '../pages/order/Order';

//引用 商品报表数据页面
import Report from '../pages/report/Report';


//实例化 VueRouter 并将routes添加进去

//第三方库需要use一下才能用
Vue.use(VueRouter)

//解决防止路由跳转相同的路径发生控制台报错问题
const originalPush = VueRouter.prototype.push
VueRouter.prototype.push = function push(location) {
    return originalPush.call(this, location).catch(err => err)
}

const router = new VueRouter({
    //ES6简写，等于routes：routes
    routes: [
        // 登录页面
        { path: '/', redirect: '/login' },
        {
            path: '/login',
            component: login
        },
        // 主页组件
        {
            path: '/Home',
            name: 'Home',
            component: Home,
            redirect: '/Welcome',
            children: [
                {
                    path: '/Welcome',
                    name: 'Welcome',
                    component: Welcome,
                },
                {
                    path: '/users', component: Users,
                    name: 'users',
                },
                {
                    path: '/rights', component: Rights,
                    name: 'rights',
                },
                {
                    path: '/roles', component: Roles,
                    name: 'roles',
                },

                {
                    path: '/categories', component: Categories,
                    name: 'categories',
                },
                {
                    path: '/params', component: Params,
                    name: 'params'
                },
                {
                    path: '/goods', component: Goods,
                    name: 'goods',
                },
                {
                    path: '/goods/add', component: Addpage,
                    name: 'addpage'
                },
                {
                    path: '/orders', component: Order,
                    name: 'order'
                },
                {
                    path: '/reports', component: Report,
                    name: 'report'
                }
            ]
        },
    ]
});



// 挂载前置路由守卫————初始化的时候被调用、每次路由切换之前被调用
router.beforeEach((to, from, next) => {
    /* 必须调用 `next` */
    // 访问登录首页则直接放行
    if (to.path === '/login') return next();
    //判断时候有token 
    // sessionStorage.getItem('token')为空时 为undefined 表示未登录 
    // !sessionStorage.getItem('token')为 true
    if (!sessionStorage.getItem('token')) router.replace('/login');
    next();
});

export default router